package com.sudo.service.admin.service;


import com.sudo.dao.admin.entity.SysMenu;
import com.sudo.dao.admin.model.bo.SysMenuAddBO;
import com.sudo.dao.admin.model.bo.SysMenuUpdateBO;
import com.sudo.dao.admin.model.vo.SysMenuPearVO;

import java.util.List;

/**
 * @author 为道日损 2020-04-24 13:51
 */
public interface SysMenuService {

    /**
     * 通过用户名或邮箱获取级联菜单
     * @param mailOrUsername 角色代码
     * @return list
     */
    List<SysMenuPearVO> queryMySysMenuByMailOrUsername(String mailOrUsername);

    /**
     * 后台查询菜单列表，制作成一个ZTree
     * @return list
     */
    List<SysMenu> getAllSysMenuList(String status);

    SysMenu getSysMenuByCode(String menuCode);

    /**
     * 修改菜单
     */
    int updateSysMenuByCode(SysMenuUpdateBO sysMenuUpdateBO);

    /**
     * 新增菜单
     * @param sysMenuAddBO 菜单
     * @return int
     */
    int addSysMenu(SysMenuAddBO sysMenuAddBO);

    int deleteSysMenuByCode(String menuCode);

    /**
     * 判断当前菜单是否还有子菜单
     * @param menuCode 菜单
     * @return true/false
     */
    boolean hasSubSysMenu(String menuCode);

    boolean hasSysMenu(String menuCode);

    boolean isMoveSysMenu(String menuCode, String otherMenuCode);
}
